package com.leyou.common.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author zqq
 * @ClassName DateUtils
 * @Description: 时间处理工具类
 * @date 2020/3/5-10:58
 */
public class DateUtils {

    /** 年年-月月-日日 */
    public static final String DATE_FORMAT_LINE = "yyyy-MM-dd";

    /**  年年年年月月日日 */
    public static final String DATE_FORMAT_YYYYMMDD = "yyyyMMdd";

    /**  年年年年月月日日 */
    public static final String DATE_FORMAT_YYYYMMDDHHmmss = "yyyyMMddHHmmss";

    /** 时时:分分:秒秒 */
    public static final String TIME_FORMAT = "HH:mm:ss";

    /** 年年年年-月月-日日  时时:分分:秒秒 */
    public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";

    /** 年年年年月月日日  时时分分秒秒 */
    public static final String DATE_TIME_FORMAT_LINE = "yyyyMMdd HHmmss";

    /** 时间开头 */
    public static final String DAY_START_TIME = "00:00:00";

    /** 时间结尾 */
    public static final String DAY_END_TIME = "23:59:00";

    /**
     * @Title: currentDate
     * @Description: 返回当前时间，字符串类型
     * @author: zqq
     * @param format 返回的格式
     * @return: java.lang.String
     * @createTime: 2020-03-05 11:01
     * @version: v.1.0
     */
    public static String currentDate(String format) {
        Date currentDate = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(currentDate);
    }

    /**
     * @Title: getDateTime
     * @Description: 返回当前时间，Date类型，格式：yyyy-MM-dd hh:mm:ss
     * @author: zqq
     * @param
     * @return: java.util.Date
     * @createTime: 2020-03-05 11:04
     * @version: v.1.0
     */
    public static Date getDateTime() throws ParseException {
        Date currentDate = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_FORMAT);
        Date date = sdf.parse(sdf.format(currentDate));
        return date;
    }

    /**
     * @Title: dateCompare
     * @Description: 比较两个日期大小，date1>date2返回1;date1=date2返回0;date1<date2返回-1
     * @author: zqq
     * @param date1 日期一
     * @param date2 日期二
     * @return: int
     * @createTime: 2020-03-05 11:06
     * @version: v.1.0
     */
    public static int dateCompare(String date1, String date2)
            throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_LINE);
        Date d1 = sdf.parse(date1);
        Date d2 = sdf.parse(date2);
        if (d1.before(d2)) {
            return -1;
        } else if (d1.equals(d2)) {
            return 0;
        } else {
            return 1;
        }
    }

    /**
     * @Title: string2date
     * @Description: 字符串类型的时间转为date类型的时间，格式：yyyy-MM-dd hh:mm:ss
     * @author: zqq
     * @param date 字符串类型时间
     * @return: java.util.Date
     * @createTime: 2020-03-05 11:10
     * @version: v.1.0
     */
    public static Date string2date(String date) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_FORMAT);
        return sdf.parse(date);
    }
}
